"""
应激感受量表（Perceived Stress Scale, PSS-10）是一种常用的自评量表，用于评估个体在过去一个月内的应激感受水平。
PSS-10包含10个问题，每个问题的得分范围是0到4分，总分范围是0到40分.根据总分，可以将应激感受水平分为几个等级。
计分方式：总分0~40分，总分为各项问题之和    0~13分压力较低，应对能力较强    14~18分压力较低或者中等，应对能力尚可
 19~25分压力中等或较高，应对能力有一定的困难    26~40分压力较高，应对能力相对较弱
"""
class PSS10:
    def __init__(self, answers):
        self.answers = answers
        self.total_score = 0

    def calculate_score(self):
        # PSS-10 的得分计算需要对某些问题进行反向计分
        reverse_questions = [4, 5, 7, 8]
        for i in range(1, 11):
            score = int(self.answers[f'q{i}'])
            if i in reverse_questions:
                score = 4 - score  # 反向计分
            self.total_score += score

    def get_stress_level(self):
        if self.total_score <= 13:
            return '压力较低，应对能力较强'
        elif 14 <= self.total_score <= 18:
            return '压力较低或者中等，应对能力尚可'
        elif 19 <= self.total_score <= 25:
            return '压力中等或较高，应对能力有一定的困难'
        else:
            return '压力较高，应对能力相对较弱'

    def get_scores(self):
        return self.total_score, self.get_stress_level()

# # 示例使用
# answers = {
#     'q1': '4',
#     'q2': '2',
#     'q3': '1',
#     'q4': '0',
#     'q5': '2',
#     'q6': '1',
#     'q7': '3',
#     'q8': '2',
#     'q9': '1',
#     'q10': '0'
# }
#
# pss10 = PSS10(answers)
# pss10.calculate_score()
# total_score, stress_level = pss10.get_scores()
# print("Total Score:", total_score)
# print("Stress Level:", stress_level)